// //步骤一:创建异步对象
// var ajax = new XMLHttpRequest()
// //步骤二:设置请求的url参数,参数一是请求的类型,参数二是请求的url,可以带参数,动态的传递参数starName到服务端
// ajax.open('get', 'https://api.apiopen.top/getJoke')
// //步骤三:发送请求
// ajax.send()
// //步骤四:注册事件 onreadystatechange 状态改变就会调用
// ajax.onloadend = function () {
//   console.log(ajax.responseText)
// }

// [(1, 2, 3)].push.call.call.call.call([4, 5, 6].toString, [7, 8, 9])

// ==> (Function.call).call([4, 5, 6].toString, [7, 8, 9])

// ==> (Object([4, 5, 6].toString)).(Function.call)([7,8,9])

// ==> (Object([4, 5, 6].toString)).call([7,8,9])

// JSON.stringify(
//   {
//     a: Promise.resolve('what'),
//     b: [undefined, NaN, alert],
//     c: atob,
//     d: 'hello',
//     e: 'world'
//   },
//   ['a', 'b', 'c', 'd']
// )
